A computer print architecture is intended to provide reliable and flexible connection of printing and plotting devices to a computer system. In seeking to accomplish this objective, print architectures have been developed that provide support for the most widely used printing devices and capabilities.
In the context of the Windows operating system print architecture, an application program initiates a printing operation by invoking a Common Property Sheet User Interface (“CPSUI”). The CPSUI enumerates the various printers installed on the system, presents application-defined settings, and displays printer specific settings retrieved from the Printer Driver User Interface. When a printer and printing options have been selected and the “PRINT” button is pressed, the CPSUI returns to the application a device context based on the selected printer. The application produces a print, in accordance with the device context, via, for example, a User Mode Graphics Device Interface (“GDI”) Client. The GDI Client invokes a GDI Render Engine, which in conjunction with a Printer Driver corresponding to the selected printer, converts GDI calls to printer specific RAW data (e.g., printer control language (“PCL”)). The RAW data is passed to a Port Monitor, a Kernel Mode Port Driver, and on to the printer.
The conventional Windows printing architecture adequately supports most common printing tasks. However, the architecture imposes various limitations that make specialized printing tasks unduly difficult. For example, the conventional printing architecture provides inadequate support for printers capable of producing prints of indefinite length.